package com.ruoyi.utils;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;

public class DocxGenerator {

    /**
     * 生成 .docx 文件的方法。
     *
     * @param path 文件保存的路径（包括文件名）
     * @param content 要写入文档的内容
     */
    public static void createDocx(Path path, String content) {
        // 创建一个新的 .docx 文件
        XWPFDocument document = new XWPFDocument();

        // 创建段落并添加到文档中
        XWPFParagraph paragraph = document.createParagraph();

        // 创建运行实例（文本块），并设置其文本内容
        XWPFRun run = paragraph.createRun();
        run.setText(content);
        run.setFontSize(12); // 设置字体大小
        run.setBold(false); // 设置是否粗体

        // 确保目录存在
        try {
            Files.createDirectories(path.getParent());
        } catch (IOException e) {
            System.out.println("创建目录时出错: " + e.getMessage());
            return;
        }

        // 将文档保存到指定路径
        try (FileOutputStream out = new FileOutputStream(path.toFile())) {
            document.write(out);
            System.out.println("文档已成功创建于: " + path.toString());
        } catch (IOException e) {
            System.out.println("创建文档时出错: " + e.getMessage());
            e.printStackTrace();
        }
    }
}